當開啟Tracking 模式時,如果Tracking keys大於設定的數量,則會隨機刪除Tracking的key,然後回應用戶端invalidate。透過此方式可以追蹤用戶端使用哪些key.
# 預設
# tracking-table-max-keys 1000000
# 開啟Tracking key
client tracking on
設定使用者和相關權限,所有參數可以參閱下面網址進一步了解。
# For example:
# 使用者worker 有list與connection權限,並可操作jobs的key,預設開啟並設定密碼。
# user worker +@list +@connection ~jobs:* on >ffa9203c493aa99
設定acl記錄中的項目上限.
# 預設
acllog-max-len 128
透過檔案設定acl.需注意如果redis.config已經設定acl,則會拒絕檔案acl設定.
# 預設
# aclfile /etc/redis/users.acl
用戶端登入Redis Server時需要使用此密碼進行驗證才可執行操作.
# 預設
# requirepass foobared
設定預設channels的pub/sub權限,Redis 6.2開始可以使用acl設定channels的pub/sub權限.
# 預設
# 拒絕使用channels的pub/sub
# acl-pubsub-default resetchannels
# 授權使用channels的pub/sub
acl-pubsub-default allchannels
用戶端最多可以允許多少連線數,需搭配伺服器環境設定的net.core.somaxconn.
# 預設
# maxclients 10000
# 允許32767連線數
net.core.somaxconn= 32767
設定Redis Server 最多可以使用多少記憶體.因backgrond服務也會使用到記憶體,故建議需保留一半避免out of memory.
# 預設
# maxmemory <bytes>
當記憶體不足時,配置相關的規則進行因應.
LRU: 最近沒有用到的key優先刪除
LFU: 最不頻繁使用到的key優先刪除
# 預設
# 當超過maxmemory則會拋出錯誤
# maxmemory-policy noeviction
針對使用LRU及TTL存活時間計算,此參數表示要檢查鍵的樣本大小。
# 預設
# maxmemory-samples 5
當超過maxmemory-policy設定時,設定是否需要延遲,當用戶端此時大量操作時,建議放大此設定.
# 預設
# 0 低延遲
# maxmemory-eviction-tenacity 10
確定Replica是否忽略maxmemory設定,方法是不從Master刪除key獨立移出.
# 預設
# replica-ignore-maxmemory yes
Redis 會刪除已經超過其時間由兩種機制生活的密鑰。
# 預設
# 1 會嘗試避免超過 10% 的過期金鑰仍在記憶體中。
# active-expire-effort 1
# 10 最多允許值,以增加在處理過期金鑰上花費的工作量,但可能會使用到CPU和造成更高的延遲